==================================================
ChronosInst LabVIEW API (for LabVIEW 2010 or newer)
Version 1.1.0
==================================================

This package provides a LabVIEW object-oriented interface to the Chronos Instrument(For example: Time-to-Digital Converter - TDC) 
via the cinstAPI C library.

✅ Features:
- Connect to NexusLab server over TCP
- Get connected devices and connect/disconnect device
- Config device parameters
- Acq raw data from device
- Process data analysis from device
- Clean resource management (Create / Close)

--------------------------------------------------
📁 Package Contents
--------------------------------------------------
ChronosInst.lvclass         — Main class definition
Public/                     — Public methods (safe for user calls)
Private/                    — Internal implementation
Lib/                        — Required C DLL libraries
Config/                     — API config ini file
Examples/                   — Example VIs demonstrating usage
README.txt                  — This file

--------------------------------------------------
⚙️ Installation
--------------------------------------------------
1. Copy the entire project folder into your LabVIEW project directory.
   Example:
      MyProject/
      └── ChronosInst/   ← place here

2. Ensure your calling VI and the DLL are in compatible architectures:
   - LabVIEW 2010 is typically 32-bit → use 32-bit dll
   - If 64-bit LabVIEW version → use 64-bit dll

3. IMPORTANT: Place "nexusapiXX.dll" in the same folder as your main VI
   (or in a system PATH directory).  

   Recommended structure for your application:
      MyApplication.vi
      Lib/nexusapiXX.dll          ← must be here!

--------------------------------------------------
🚀 Basic Usage
--------------------------------------------------
In your VI's block diagram:

1. Call: ChronosInst » ciCreate.vi
   - Inputs: configPath (string), baseDir (string)
   - Output: obj (ChronosInst reference)

2. Use obj to call methods:
   - obj → ciGetDevices.vi
   - obj → ciConnect.vi
   - etc.

3. Always call: obj → ciDestory.vi when done
   (to release internal resources)

See "Examples/Basic Usage Example.vi" for a complete working example.

--------------------------------------------------
⚠️ Notes & Limitations (LabVIEW 2010)
--------------------------------------------------
- This API uses standard LVOOP (LabVIEW Object-Oriented Programming).
- You cannot place a "ChronosInst object" on the front panel (not supported in LV2010).
- All interactions happen via method VIs in the block diagram.
- The DLL (nexuslabXX.dll) must be accessible at runtime — see Installation above.
- Please install NI Unicode Tools plugin before usage.
- After compile your own application, ensure Lib folder(DLL files) and Config folder(apiconfig.ini) are included in the build output.
- Tested only on LabVIEW 2010 & 2023; newer versions should be compatible but not guaranteed.

--------------------------------------------------
📄 License
--------------------------------------------------
Copyright (c) 2025 Chronos Instruments, Inc  
All rights reserved.
http://www.chronosci.com

This software is provided "as-is". Use at your own risk.

--------------------------------------------------
📬 Support
--------------------------------------------------
For questions or issues, contact: support@chronosci.com
